#ifndef OUTPUTER_H_
#define OUTPUTER_H_

#include <vector>
#include <string>

class Number;

/*
 * Outputer is the base Strategy class.
 */
class Outputer
{
public:
	virtual ~Outputer(void);

protected:
	Outputer(Number*);

public:
	virtual void output();

protected:
	Number* m_pNum;
	std::vector<std::string> m_vect;
};

/*
 * EnglishOutputer is the concrete Strategy class.
 */
class EnglishOutputer : public Outputer
{
public:
	EnglishOutputer(Number*);
	~EnglishOutputer();
};

class ChineseOutputer : public Outputer
{
public:
	ChineseOutputer(Number*);
	~ChineseOutputer();
};

#endif // OUTPUTER_H_
